home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
biz
/
swood
/
FWTabTools.lha
/
FWTabTools
/
FWCalcAddZeile.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1998-01-04
|
3KB
|
160 lines
/* $VER: 0.15 , (04.01.1998), © by Thorsten Willert
Macro um Tabellenzeilen zu addieren (den Inhalt
in Zahlen natürlich)
------------------------------------------------*/
ADDRESS = 'FinaW'
OPTIONS CACHE RESULTS
STATUS PORTNAME
FW = RESULT
ADDRESS = FW
SIGNAL ON BREAK_C
SIGNAL ON HALT
SIGNAL ON SYNTAX
/*-----------------------------------------------*/
RT.Version = "Version 0.15"
RT.Title = "FWAddZeile"
RT.Para1 = "rt_pubscrname = FinalWriterPubScreen rt_topoffset = 50 rt_reqpos = reqpos_topleftwin"
RT.Copyright = "© 1998, by Thorsten Willert"
R = '0A'X
/*-----------------------------------------------*/
IF ~show('L',"rexxreqtools.library") THEN DO
IF ~addlib('rexxreqtools.library',0,-30,0) THEN DO
'ShowMessage 1 1 "Fehler ..." "Benötige RexxReqTools.library!" "" "Abbruch !!" "" ""'
EXIT 20
END
END
DO FOREVER
IF Info("_Berechnen|_Ende" ) == 0 THEN LEAVE
ADDRESS(FW)
GETDocItemPrefs Decimal
Punkt = result
result = ""
IF SetCursor() = 0 THEN ITERATE
CALL Addieren
TableSetActiveCell StartZeile StartSpalte
END
/*-----------------------------------------------*/
Ende:
EXIT
/*-----------------------------------------------*/
SetCursor:
ADDRESS(FW)
TableGetActiveCell
PARSE VAR RESULT Zeile Spalte
StartZeile = Zeile
StartSpalte = Spalte
IF Zeile = "" | Spalte = "" THEN /* Geht nicht über GetObjektType */
DO
CALL KeineTabelle
RETURN 0
END
TableGetColumns
PARSE VAR RESULT Muell Spalten
IF Spalte=Spalten THEN Spalte=1
TableSetActiveCell Zeile Spalte
RETURN 1
/*-----------------------------------------------*/
Addieren:
ADDRESS (FW)
i=1;Summand=0;Summe=0
DO FOREVER
i=i+1
TableSetActiveCell Zeile Spalte
SelectAll
Extract
Summand = COMPRESS(RESULT,'09'X'0A'X" ")
Summand2 = TRANSLATE( Summand ,".",",")
IF ~DATATYPE( Summand2, "NUMERIC") = 0 THEN
DO
Justify Right
Summand=Summand2
IF Summand = "" THEN Summand = 0
END
ELSE Summand=0
Summe=Summe+Summand
IF Spalte=Spalten-1 THEN LEAVE
Spalte=Spalte+1
END
TableSetActiveCell Zeile Spalten
SelectAll
Clear
Justify Right
Style Bold
IF Punkt~="Period" THEN Summe=TRANSLATE(Summe,",",".")
Type Summe
RETURN
/*-----------------------------------------------*/
KeineTabelle:
rtezrequest("Zuerst eine Tabelle auswählen"||R||,
"und Cursor positioniern!","Weiter",RT.Title)
RETURN
/*-----------------------------------------------*/
Info:
PARSE ARG Taste1
res = rtezrequest(RT.Version||","||R||RT.Copyright||R||R||,
"Addiert Zeilen ab Cursorposition",Taste1,RT.Title,RT.Para1)
RETURN res
/*-----------------------------------------------*/
HALT:
BREAK_C:
rtezrequest("Macro wurde abgebrochen ... ","Weiter",RT.Title)
EXIT 10
/*-----------------------------------------------*/
SYNTAX:
IF RC = 47 THEN
rtezrequest("Fehler!","_Weiter|_Hilfe",RT.Title)
IF rtresult == 0 THEN CALL Info( "_Aha" )
EXIT 10